\documentclass{article}

\usepackage{amsmath, amssymb, amscd}
\usepackage{url}
\usepackage{graphicx}
\usepackage{amsthm}
\usepackage[all]{xy}
\usepackage{multirow}
\usepackage{subfigure}



% Puts more text on each page
\addtolength{\topmargin}{-.75in}
\addtolength{\textheight}{1.5in}
\addtolength{\oddsidemargin}{-.5in}
\addtolength{\textwidth}{1.0in}


\title{SwarmVis - A Tool For Visualizing Swarm Systems\\Comparison of Final Result and Original Proposal}
\author{Don Miner and Niels Kasch}
\date{December 11, 2008}

\begin{document}
\maketitle

We set out to create a toolkit for visualizing swarm systems. In designing SwarmVis, we aimed to implement visualization techniques that allow researchers to interactively investigate swarms both at the swarm-level and the agent-level.  Researchers would be able to study interactions, fine-grained movements, and swarm behavior. In its final form, SwarmVis has achieved these high-level goals.

In this document, we discuss, in detail, how SwarmVis met (and did not meet) the goals and requirements outlined in the original proposal.
In summary, we met all our specific goals except for two: convey domain information in the visualization, and provide an easy way to add visualizations to the system.

\section{Analysis of Goals}

In our original proposal, we set out four goals. In this section we comment on how we achieved these goals and to what degree.
\begin{enumerate}
\item {\em The toolkit shall visualize swarms using a series of still images (i.e. a video) embedded in an interactive framework that has features such as pausing, slowing down and rewinding of frames.}

SwarmVis shows an animation of the swarm system running in an graphical frame. The user has control of the motion of the frame similar to that of a standard media player, such as QuickTime. In addition, SwarmVis can output an image dump of every frame, which then can be compiled into a video file for viewing outside of the application.

\item {\em The toolkit shall provide a variety of built-in visualization techniques that are useful in visualizing swarm systems. These visualizations will convey information about individual agents, groups of agents, the swarm as a whole, and the domain.}

SwarmVis, in its final form, ended up having a wide variety of visualizations available to the user. These include custom size and color of agents, agent trails, agent tracks, color cues for velocity, and coloring based on group. All of these visualizations are based on the information provided about individual agents. Thus, no calculations are performed to directly visualize the behavior of the ``swarm as a whole." However, we feel that this specific goal of swarm-level visualization was achieved since the agent-level visualizations strongly convey information about the swarm-level behavior. We discuss in our paper how swarm-level behaviors are inferred from the figures generated by SwarmVis.

Coloring agents by their group membership gives users an easy way to track agents of a particular type. This satisfied our goal to be able to visualize groups of agents.

Unfortunately, we never addressed the goal of conveying domain information. For the final release, we only included visualizations that would be useful for conveying information about any swarm system. Adding domain information would require domain knowledge and would have to be tailored for every domain. Adding the facilities to directly visualize domain knowledge may be implemented in the future.

\item {\em The toolkit shall provide the ability for users to expand the available visualizations by adding their own.}

We were never able to add this functionality. Currently, if any visualization needs to  be expanded, modified or added, SwarmVis must have a modification made to its main draw function and be recompiled. The currently existing visualizations in this function could be broken out into external modules, which then could be executed in succession in the draw function. We do feel, however, that modifying the draw function in SwarmVis is as intuitive as possible with useful functions and already existing code functioning as examples.

\item {\em The toolkit shall visualize both two-dimensional and three-dimensional swarms.}

SwarmVis is able to handle both two- and three-dimensional data. Two dimensional swarms are simply plotted as a plane in three-dimensional space.

\end{enumerate}

\section{Additional Goals}

Through the process of developing SwarmVis, we not only came up with better ideas of how to visualize swarm systems, but also formalized what a good swarm visualization is. We determined several important swarm- and agent-level properties that must be displayed in an informative visualization: direction, velocity, structure, and previous positions. Whenever designing visualizations for SwarmVis, asked ourselves  which of these pieces of information are being conveyed. We believe that SwarmVis conveys all of these properties well.

Another very important goal that was emphasized later in development is the quality of {\em still images}, not only videos. Images created by SwarmVis convey the several properties outlined previously through the use of trails, tracks and coloring based on velocity.

\end{document}
